7 research outputs found

    Entwurf und Implementierung effizienter Objektsysteme für funktionale und imperative Programmiersprachen am Beispiel von Lisp

    Get PDF
    Bisherige Objektsysteme funktionaler und imperativer Programmiersprachen weisen eine Lücke auf. Aus der funktionalen Tradition wurde das ausdrucksstärkste Objektsystem CLOS entwickelt, das insbesondere durch sein Metaobjektprotokoll hervorsticht, dessen Performanz aber zu wünschen übrig läßt. Auf der anderen Seite zeichnet sich C++ als besonders effizient aus, unterstützt aber zentrale Konzepte objektorientierter Programmierung wie Spezialisieren und Generalisieren von Objektklassen nur unzureichend, was abgeschwächt auch für Java gilt. In dieser Arbeit wird am Beispiel von Lisp gezeigt, wie man effiziente Objektsysteme unter Berücksichtigung des Verursacherprinzips so entwirft und implementiert, daß einfache Konstrukte keinen Overhead durch die Präsenz aufwendiger Konzepte, wie des Metaobjektprotokolls oder des Redefinierens von Klassen, mittragen müssen. Entgegen bisherigen Annahmen wird hier erstmals nachgewiesen, daß diese Konzepte auch ohne Quellcodeinterpretation bzw. -kompilation zur Laufzeit realisiert und somit auch in traditionellen, compiler-orientierten Programmiersprachen, wie Ada, Pascal, Eiffel, C++ und natürlich Java, unterstützt werden können.Up to now a gap is evident in object systems of functional and procedural programming languages. The most expressive object system developed in the family of functional languages is CLOS with its outstanding metaobject protocol. Its performance, however, does not meet the users' needs. In the family of procedural languages the most efficient object system developed is C++. But its support of central concepts of object-oriented programming, such as specialization and generalization of object classes, is not sufficient. This also applies in some degree for Java. Using Lisp as an example this thesis shows how efficient object systems can be designed and implemented so that simple constructs have no overhead because of the presence of complex concepts such as the metaobject protocol or the redefinition of classes. In contrast to former assumptions, this thesis proofs for the first time that the above mentioned concepts can be realized without embedding an interpreter or an incremental compiler in the run-time environment. Therefore, they can also be supported in traditional compileroriented programming languages such as Ada, Pascal, Eiffel, C++, and Java

    Using resource modelling to inform decision making and service planning: the case of colorectal cancer screening in Ireland

    Get PDF
    Background - Organised colorectal cancer screening is likely to be cost-effective, but cost-effectiveness results alone may not help policy makers to make decisions about programme feasibility or service providers to plan programme delivery. For these purposes, estimates of the impact on the health services of actually introducing screening in the target population would be helpful. However, these types of analyses are rarely reported. As an illustration of such an approach, we estimated annual health service resource requirements and health outcomes over the first decade of a population-based colorectal cancer screening programme in Ireland. Methods - A Markov state-transition model of colorectal neoplasia natural history was used. Three core screening scenarios were considered: (a) flexible sigmoidoscopy (FSIG) once at age 60, (b) biennial guaiac-based faecal occult blood tests (gFOBT) at 55–74 years, and (c) biennial faecal immunochemical tests (FIT) at 55–74 years. Three alternative FIT roll-out scenarios were also investigated relating to age-restricted screening (55–64 years) and staggered age-based roll-out across the 55–74 age group. Parameter estimates were derived from literature review, existing screening programmes, and expert opinion. Results were expressed in relation to the 2008 population (4.4 million people, of whom 700,800 were aged 55–74). Results - FIT-based screening would deliver the greatest health benefits, averting 164 colorectal cancer cases and 272 deaths in year 10 of the programme. Capacity would be required for 11,095-14,820 diagnostic and surveillance colonoscopies annually, compared to 381–1,053 with FSIG-based, and 967–1,300 with gFOBT-based, screening. With FIT, in year 10, these colonoscopies would result in 62 hospital admissions for abdominal bleeding, 27 bowel perforations and one death. Resource requirements for pathology, diagnostic radiology, radiotherapy and colorectal resection were highest for FIT. Estimates depended on screening uptake. Alternative FIT roll-out scenarios had lower resource requirements. Conclusions - While FIT-based screening would quite quickly generate attractive health outcomes, it has heavy resource requirements. These could impact on the feasibility of a programme based on this screening modality. Staggered age-based roll-out would allow time to increase endoscopy capacity to meet programme requirements. Resource modelling of this type complements conventional cost-effectiveness analyses and can help inform policy making and service planning

    Balancing the EuLisp Metaobject Protocol

    No full text
    The challenge for the metaobject protocol designer is to balance the conflicting demands of efficiency, simplicity, and extensibility. It is impossible to know all desired extensions in advance; some of them will require greater functionality, while others require greater efficiency. In addition, the protocol itself must be sufficiently simple that it can be fully documented and understood by those who need to use it. This paper presents a metaobject protocol for EuLisp which provides expressiveness by a multi-leveled protocol and achieves efficiency by static semantics for predefined metaobjects and modularizing their operations. The EuLisp module system supports global optimizations of metaobject applications. The metaobject system itself is structured into modules, taking into account the consequences for the compiler. It provides introspective operations as well as extension interfaces for various functionalities, including new inheritance, allocation and slot access semantics. W..
    corecore